"typename是用来告诉编译器模板中有一个表示类型名"一句中的有"一个表示类型名"这点不懂

来源:百度知道 编辑:UC知道 时间:2024/07/13 04:46:31
期待您的指教!
谢谢!!!

template <typename my_type> //格式1
这只是个规定的格式,是标准的模板定义语法,您别太介意作者解释里的用词了,就好比圆周率用的是PI,为什么不用其它字母一样,用其他字母别人就不明白您表达的是圆周率的意思。同样您不用typename再加上一个自己的类型名,是无法让编译器理解您已经在创建一个自己的模板了,并且在模板中可以使用typename后面的这个my_type类型。(您有稍微看过有关编译技术的书吗?如果您看过些,您应该知道编译器大致是如何工作的,如果知道了这些我相信您是根本不会问以上的问题了,其实这个问题不是C++的概念,作者这样的用词是从编译器制造者的角度来说话的,所以这是个编译器问题。)
现在很多人用的是这个语法:template <class my_type>,这和上面的“格式1”是一样的。
typename还有种用法,比较少,比较偏,建议编程初期不用多研究。推荐您本书标准C++与面向对象程序设计(机械工业出版社),这里面说了很多的typename.